package cn.iune.erp.inventory;

import java.util.List;
import com.alibaba.fastjson.JSONObject;

import cn.iune.common.base.IBizDataIface;

public interface IFileStorageService extends IBizDataIface {

	List<FileStorage> getAll();

	FileStorage getByID(String fID);

	void delete(String fID);
	/*
		public FileStorage getByNo(String storageFullNo, String enterpriseNo) {
			return dao.getByNo(storageFullNo, enterpriseNo);
		}
	*/

	JSONObject save(JSONObject object) throws Throwable;

	///////////////////////业务功能///////////////////////////////////////
	/*
	public FileStorage getStorageByNo(String storageNo, String enterpriseNo) {
		return dao.getStorageByNo(storageNo, enterpriseNo);
	}
	*/
	List<String> getRootIDs(String enterpriseNo);

	List<String> getChildIDs(String fParent);

	//更新修改人
	int updateAlterUser(FileStorage fs, String cUsercode, String cUsername);

	//更新层级
	int updateNodeLevel(FileStorage fs, int nodeLevel);

	//更新层级
	int updateILevel(String rowID, int nodeLevelParent);

	//更新叶子状态
	int updateNodeKind(FileStorage fs, String nodeKind);

	//更新父级
	int updateParentID(FileStorage fs, String fParent);

	//更新sortNo
	int updateSortNo(FileStorage fs, String sortNo);

	//更新全路径ID
	int updateFullID(FileStorage fs, String storageFullID);

	//更新全路径ID
	int updateFullNo(FileStorage fs, String storageFullNo);

	//更新全路径名称
	int updateFullName(FileStorage fs, String storageFullName);

	//更新全路径ID和名称
	int updateFullNoName(FileStorage fs, String storageFullNo, String storageFullName);

	//获取子节点数量
	int getChildCount(String fParent);

	//新增行的排序号编写
	String getSortNoByParent(String fParent);

	//获取ids
	List<String> getIDsByParent(String fParent, String enterpriseNo);

	//更新全路径信息
	int rewriteFullInfoByFullID(String fID, String storageFullID, String nodeKind/*,ModifyState rowState*/);

	//移动
	int move(String rowID, String oldParentID, String newParentID);

	//排序
	int sort(String parentID, List<String> ids/*,List<Integer> versions*/);

	//获取数据库的父
	FileStorage getParent(FileStorage fs);

	//获取数据库的根
	FileStorage getRoot(FileStorage fs);

	List<FileStorage> getChildren(String fParent);

	List<FileStorage> getByFactoryID(String factoryID, String enterpriseNo);

	List<FileStorage> getRoots(String enterpriseNo);




}